package Day_0218.Reflection_Dynamic_Proxy;

/**
 * @author zxc
 * @date 2023/02/18 21:43
 **/
public class ClassForName_ClassLoader {
    public static void main(String[] args) {
        /**
         * 反射中，Class.forName 和 ClassLoader 区别
         * ===》
         * （1）java中class.forName()和classLoader都可用来对类进行加载。
         *
         * （2）class.forName() ：
         *  除了将类的.class文件加载到jvm中之外，还会对类进行解释，执行类中的static块。
         *
         * （3）classLoader
         *  就是将.class文件加载到jvm中，不会执行static中的内容,只有在newInstance时，才会去执行static块。
         *
         *  ===》
         *  总结 ：
         *  （1）Class.forName得到的class，是已经初始化完成的;
         *   ===》
         *   即，会指向类中static所修饰的代码块 && static所修饰的变量;
         *  （2）Classloader.loaderClass得到的class，是还没有链接的;
         *   加载 -> 链接（验证 -> 准备 -> 解析） -> 初始化;
         *
         */
    }
}
